Historically, computer systems provided a command-line interface for the programmer or other user of a computer system. Modern computer systems provide a graphic display for the user. Typically, the user of a modern computer system sees and interacts with several windows or frames on a display associated with the computer system. For example, a user selects a window using a mouse or keyboard and enters data or a command in the window. The user can make a selection in one window that requests the display in a second window of a spreadsheet or other data report obtained from a database or over a network. The user can then make further requests that change data in the second window. For example, the user can request that the format of the data displayed in the second window be changed or that the data report be replaced by some other data report.
In general, initiatives or interactions by the user in one window lead to results or changes in displays in another window. In effect, the user initiates a message from one window that is communicated to the second window. The message may be acted upon by scripts or program code associated with the second window to cause some change in the display in the second window or some other effect, or text provided in the message may be displayed in the second window.
Typically, the windows (or frames) are associated with each other, for example, in a hierarchical set of windows. Alternatively, one window may be the “opener,” that is, the window that opened the second window for display on the computer's display at some previous point in time. Thus, each source window originating a message has some relationship to the target window that is to the receive the message. Typically, a script associated with the source window directs the message to the target window based on this relationship.
In one conventional approach, the windows are frames in a network browser, and scripts, such as scripts based on JavaScript™ from Sun Microsystems Inc., are associated with each window. A script associated with a source frame typically generates a message based on the user's actions, using JavaScript conventions, to send to a target frame to receive the message based on the relationship between the source frame and the target frame. Each frame typically has some explicit relationship to other frames in the display. For example, one frame may be related to another frame by being the parent of that frame, that is, the frame is a parent frame in a hierarchy of parent-child frames. Alternatively, a frame may be the opener of another frame without being the parent of the opened frame.